package com.excesys.exsecs.eco.util;

import java.util.Map;
import java.util.Random;

public class RandomUtil {

    public static Float getFloatRandom(int minInt, int maxInt) {

        Random random = new Random();
        // 生成一个介于 minInt 和 maxInt 之间的整数
        int randomInt = minInt + random.nextInt(maxInt - minInt + 1);
        // 生成一个介于 0 和 99 之间的整数，然后除以 100 以产生两位小数部分
        float decimalPart = random.nextInt(100) / 100.0f;
        // 组合整数部分和小数部分
        return randomInt + decimalPart;
    }

    public static Float getFloatRandom2(Float minFloat, Float maxFloat) {

        Random random = new Random();
        // 生成 4.2 到 4.8 之间的随机 double 值，范围需要调整为 (4.2 - 0.005, 4.8 + 0.005)
        // 以确保格式化后仍然在 4.2 到 4.8 的范围内
        double randomDouble = minFloat + (random.nextDouble() * (maxFloat - minFloat + 0.01)) - 0.005;
        // 将 double 值转换为 float 并格式化输出为两位小数
        float randomFloat = (float) Math.round(randomDouble * 100.0) / 100.0f;
        // 确保生成的随机数在 4.2 到 4.8 的范围内（由于浮点数的精度问题，这里只是一个近似的保证）
        while (randomFloat < minFloat || randomFloat > maxFloat) {
            randomDouble = minFloat + (random.nextDouble() * (maxFloat - minFloat + 0.01)) - 0.005;
            randomFloat = (float) Math.round(randomDouble * 100.0) / 100.0f;
        }
        return randomFloat;
    }

}
